{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "281f91d8-d92f-4251-979e-f7bb5a4fc5c1",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "33c27dac-6202-4719-90c1-9d0e41f90d58",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 回归，有监督的机器学习\n",
    "X = 2*np.random.rand(100,1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "e1fe6c96-214f-4792-b7b8-61b6ade2a291",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1.95939368e+00],\n",
       "       [9.17704661e-01],\n",
       "       [9.39645039e-01],\n",
       "       [1.09944887e+00],\n",
       "       [1.05947710e+00],\n",
       "       [1.12618849e+00],\n",
       "       [4.48177908e-01],\n",
       "       [1.37859576e+00],\n",
       "       [1.44731594e+00],\n",
       "       [7.46386653e-01],\n",
       "       [1.29875159e-01],\n",
       "       [1.60249829e+00],\n",
       "       [8.06996013e-01],\n",
       "       [1.79828362e+00],\n",
       "       [8.16282335e-01],\n",
       "       [4.06676979e-01],\n",
       "       [3.89688585e-01],\n",
       "       [1.53555121e+00],\n",
       "       [1.56690270e+00],\n",
       "       [1.17281797e+00],\n",
       "       [4.58601963e-01],\n",
       "       [1.97017454e+00],\n",
       "       [3.09527754e-01],\n",
       "       [1.55883476e+00],\n",
       "       [5.19775646e-01],\n",
       "       [1.67586954e+00],\n",
       "       [4.51850038e-01],\n",
       "       [3.64163846e-01],\n",
       "       [9.35664802e-01],\n",
       "       [1.77948248e+00],\n",
       "       [1.20884316e+00],\n",
       "       [4.19836288e-01],\n",
       "       [4.43887472e-02],\n",
       "       [1.81246936e+00],\n",
       "       [1.00602092e+00],\n",
       "       [1.73634775e+00],\n",
       "       [6.54486123e-01],\n",
       "       [1.70042480e+00],\n",
       "       [1.00636296e+00],\n",
       "       [8.65682637e-01],\n",
       "       [4.98331172e-03],\n",
       "       [1.71442930e+00],\n",
       "       [5.24335919e-01],\n",
       "       [1.81507193e-01],\n",
       "       [8.41959926e-01],\n",
       "       [1.74458863e+00],\n",
       "       [1.68497551e+00],\n",
       "       [9.15556780e-01],\n",
       "       [7.68724437e-01],\n",
       "       [1.43617255e+00],\n",
       "       [4.67313276e-01],\n",
       "       [9.27802247e-01],\n",
       "       [1.92853674e+00],\n",
       "       [4.43780327e-01],\n",
       "       [1.92743742e+00],\n",
       "       [2.40801310e-01],\n",
       "       [1.07717392e+00],\n",
       "       [1.26398917e+00],\n",
       "       [2.71566868e-01],\n",
       "       [1.41015672e+00],\n",
       "       [7.96082921e-02],\n",
       "       [4.79699240e-01],\n",
       "       [2.25849100e-01],\n",
       "       [6.28863454e-01],\n",
       "       [1.30885250e+00],\n",
       "       [7.32752833e-01],\n",
       "       [1.26824495e+00],\n",
       "       [5.94617523e-01],\n",
       "       [1.42534449e+00],\n",
       "       [9.03731449e-01],\n",
       "       [4.03814606e-01],\n",
       "       [4.61716340e-01],\n",
       "       [1.00705690e+00],\n",
       "       [5.15901729e-01],\n",
       "       [1.96494274e+00],\n",
       "       [7.39279237e-01],\n",
       "       [1.62639030e+00],\n",
       "       [7.34098563e-01],\n",
       "       [9.86095277e-01],\n",
       "       [1.82279919e-03],\n",
       "       [1.64181891e+00],\n",
       "       [1.46920210e+00],\n",
       "       [1.84044446e+00],\n",
       "       [2.38358370e-01],\n",
       "       [1.68166234e-01],\n",
       "       [1.89667989e+00],\n",
       "       [3.12094070e-01],\n",
       "       [8.03367992e-01],\n",
       "       [8.58833619e-01],\n",
       "       [1.72246142e+00],\n",
       "       [1.97010035e+00],\n",
       "       [1.29883556e+00],\n",
       "       [1.29140775e+00],\n",
       "       [9.03488065e-01],\n",
       "       [2.30210403e-01],\n",
       "       [9.48654837e-01],\n",
       "       [7.09134216e-01],\n",
       "       [1.51132086e+00],\n",
       "       [5.29969114e-01],\n",
       "       [1.19096830e+00]])"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "179742d2-5723-4e21-bf48-34a1ab3ea2dd",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "100\n"
     ]
    }
   ],
   "source": [
    "print(len(X))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "cf112f56-133a-46fe-adaa-ee5c8b0f60cb",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 模拟真实Y的数据\n",
    "Y = 5 + 4*X +np.random.randn(100,1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "895c1e2a-df14-469d-a70d-c1abdfa0690b",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[13.18842593],\n",
       "       [ 8.00066853],\n",
       "       [ 8.46765755],\n",
       "       [ 8.35250484],\n",
       "       [10.46396583],\n",
       "       [10.94292159],\n",
       "       [ 7.22705848],\n",
       "       [10.79600519],\n",
       "       [11.37898044],\n",
       "       [ 8.76306685],\n",
       "       [ 7.11942729],\n",
       "       [10.52642989],\n",
       "       [ 7.91316869],\n",
       "       [12.56851318],\n",
       "       [ 8.39284517],\n",
       "       [ 7.60613127],\n",
       "       [ 6.45814884],\n",
       "       [11.90954573],\n",
       "       [11.93320952],\n",
       "       [ 8.29459557],\n",
       "       [ 7.62134869],\n",
       "       [14.23822332],\n",
       "       [ 7.14394461],\n",
       "       [11.00277371],\n",
       "       [ 8.12619937],\n",
       "       [13.35276541],\n",
       "       [ 7.90844969],\n",
       "       [ 5.72404304],\n",
       "       [ 9.24490437],\n",
       "       [11.14432745],\n",
       "       [ 8.95080421],\n",
       "       [ 8.01344566],\n",
       "       [ 4.50942876],\n",
       "       [12.38541114],\n",
       "       [10.61790261],\n",
       "       [12.57868569],\n",
       "       [ 8.10892433],\n",
       "       [13.23787494],\n",
       "       [ 6.34357439],\n",
       "       [ 8.31553439],\n",
       "       [ 4.3542042 ],\n",
       "       [11.63916667],\n",
       "       [ 6.16500549],\n",
       "       [ 6.4028842 ],\n",
       "       [ 8.51026726],\n",
       "       [11.2674002 ],\n",
       "       [12.14304125],\n",
       "       [ 9.87771742],\n",
       "       [ 7.78518246],\n",
       "       [10.65537861],\n",
       "       [ 5.49930373],\n",
       "       [ 8.30857983],\n",
       "       [ 9.86662449],\n",
       "       [ 6.46993272],\n",
       "       [12.20244591],\n",
       "       [ 4.91937477],\n",
       "       [ 8.72143393],\n",
       "       [ 8.98279361],\n",
       "       [ 6.03468876],\n",
       "       [12.05908594],\n",
       "       [ 5.66500603],\n",
       "       [ 5.28892606],\n",
       "       [ 5.05956008],\n",
       "       [ 6.85381549],\n",
       "       [ 9.17822477],\n",
       "       [ 7.21109263],\n",
       "       [ 9.98033968],\n",
       "       [ 9.02509693],\n",
       "       [10.63363702],\n",
       "       [ 8.97824093],\n",
       "       [ 6.49048412],\n",
       "       [ 7.18577025],\n",
       "       [ 8.15412834],\n",
       "       [ 7.41875454],\n",
       "       [14.56547584],\n",
       "       [ 8.3712207 ],\n",
       "       [10.60201819],\n",
       "       [ 9.1017318 ],\n",
       "       [ 8.57286254],\n",
       "       [ 6.19759913],\n",
       "       [12.39579493],\n",
       "       [10.41283191],\n",
       "       [12.66642877],\n",
       "       [ 5.83034248],\n",
       "       [ 5.31357789],\n",
       "       [13.96546754],\n",
       "       [ 7.22363216],\n",
       "       [ 9.00990625],\n",
       "       [ 9.46144566],\n",
       "       [10.60513146],\n",
       "       [13.50171131],\n",
       "       [ 9.78367501],\n",
       "       [10.78200225],\n",
       "       [ 9.37205155],\n",
       "       [ 6.5259249 ],\n",
       "       [ 8.7139205 ],\n",
       "       [ 7.49507565],\n",
       "       [11.28534443],\n",
       "       [ 7.88857974],\n",
       "       [10.63227604]])"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "5f3de564-60ae-4fbc-ac7d-8e907a2971c4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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RYsW6a233soec+edd+pb3/qWHnzwQb366qsaM2aMGhoadPLkSbdOK4fVc2xpadG1116r5uZm7d69W9XV1briiiv07rvv5hx35ZVX6re//W324/HHH3fjdAZk9Tyl9Op7vc/h8OHDOd8P+rV86qmncs7vrbfeUmlpqT73uc/lHOena3n8+HHNnDlTmzdvLuj41tZWzZ8/X/PmzdP+/fu1cuVK3XjjjTk352L+bTjJ6jnu2rVLl19+uX74wx/qjTfe0Lx587RgwQLt27cv57jp06fnXMef/exnTjS/IFbPMePAgQM553D22Wdnv+e36yhZP89777035/za29s1fvz4fn+TfrmWL774olasWKFXXnlFzz//vE6dOqUrrrhCx48fH/BnXL1PmoCaPXu2WbFiRfbr7u5uU1lZadavX5/3+KuvvtrMnz8/57E5c+aY5cuXG2OM6enpMRMnTjR33XVX9vsffPCBKS8vN48//rgDZzA0q+fY15/+9CczduxYs3Xr1uxjS5cuNQsXLrS7qcNi9Ty/+93vmng8PuDzhfFa3nPPPWbs2LHm2LFj2cf8eC0zJJnt27cPesyXv/xlM3369JzHrrnmGtPQ0JD9eri/NycVco75fOxjHzN33HFH9uu1a9eamTNn2tcwGxVyjs3NzUaS+cMf/jDgMX6+jsYUdy23b99uYrGYaWtryz7m52v5/vvvG0nmxRdfHPAYN++Tgez5+L//+z+98cYbqq+vzz5WUlKi+vp67d69O+/P7N69O+d4SWpoaMge39raqqNHj+YcE4/HNWfOnAGf00nFnGNfJ06c0KlTpzR+/Picx1taWnT22Wdr2rRpuummm/T73//e1rZbUex5Hjt2TDU1NaqurtbChQv1i1/8Ivu9MF7LpqYmLV68WGPGjMl53E/X0qqh/ibt+L35TU9Pjzo7O/v9TR48eFCVlZU699xzdd111+k3v/mNRy0s3ic+8QlNmjRJl19+uV566aXs42G8jlL6b7K+vl41NTU5j/v1WnZ0dEhSv397vbl5nwxk+Pjd736n7u5uTZgwIefxCRMm9BtnzDh69Oigx2c+W3lOJxVzjn3ddtttqqyszPmHcuWVV+p73/uedu7cqY0bN+rFF19UY2Ojuru7bW1/oYo5z2nTpuk73/mOnn76af3Hf/yHenp6dNFFFymZTEoK37V87bXX9NZbb+nGG2/Medxv19Kqgf4mU6mU/vjHP9ryN+A3mzZt0rFjx3T11VdnH5szZ462bNmiZ599Vg888IBaW1v1mc98Rp2dnR62tHCTJk3Sgw8+qCeffFJPPvmkqqurVVdXp71790qy5/9lfnPkyBH96Ec/6vc36ddr2dPTo5UrV+riiy/Wxz/+8QGPc/M+6btdbWGPDRs2aNu2bWppackpxly8eHH2v2fMmKELL7xQ5513nlpaWnTZZZd50VTL5s6dq7lz52a/vuiii3TBBRfooYce0rp16zxsmTOampo0Y8YMzZ49O+fxMFzLKHnsscd0xx136Omnn86ph2hsbMz+94UXXqg5c+aopqZGTzzxhBKJhBdNtWTatGmaNm1a9uuLLrpI77zzju655x79+7//u4ctc87WrVs1btw4LVq0KOdxv17LFStW6K233vK0lqivQPZ8nHXWWSotLdV7772X8/h7772niRMn5v2ZiRMnDnp85rOV53RSMeeYsWnTJm3YsEE//vGPdeGFFw567LnnnquzzjpLhw4dGnabizGc88wYOXKkPvnJT2bPIUzX8vjx49q2bVtB/+Py+lpaNdDfZEVFhUaPHm3Lvw2/2LZtm2688UY98cQT/bq1+xo3bpw++tGPBuY65jN79uxs+8N0HaX0bI/vfOc7WrJkicrKygY91g/X8gtf+IKeeeYZNTc3q6qqatBj3bxPBjJ8lJWV6S/+4i+0c+fO7GM9PT3auXNnzjvi3ubOnZtzvCQ9//zz2eOnTJmiiRMn5hyTSqX06quvDvicTirmHKV0JfK6dev07LPPatasWUO+TjKZ1O9//3tNmjTJlnZbVex59tbd3a0333wzew5huZZSetpbV1eXrr/++iFfx+tradVQf5N2/Nvwg8cff1w33HCDHn/88Zyp0gM5duyY3nnnncBcx3z279+fbX9YrmPGiy++qEOHDhX0hsDLa2mM0Re+8AVt375dL7zwgqZMmTLkz7h6n7RUnuoj27ZtM+Xl5WbLli3ml7/8pVm2bJkZN26cOXr0qDHGmCVLlpjVq1dnj3/ppZfMiBEjzKZNm8zbb79t1q5da0aOHGnefPPN7DEbNmww48aNM08//bT5n//5H7Nw4UIzZcoU88c//tH18zPG+jlu2LDBlJWVme9///vmt7/9bfajs7PTGGNMZ2enueWWW8zu3btNa2ur+clPfmI+9alPmdraWnPy5ElPztEY6+d5xx13mOeee86888475o033jCLFy82o0aNMr/4xS+yxwT9WmZ8+tOfNtdcc02/x/14LTs7O82+ffvMvn37jCRz9913m3379pnDhw8bY4xZvXq1WbJkSfb4X//61+ZDH/qQufXWW83bb79tNm/ebEpLS82zzz6bPWao35vbrJ7jo48+akaMGGE2b96c8zf5wQcfZI/50pe+ZFpaWkxra6t56aWXTH19vTnrrLPM+++/7/r5GWP9HO+55x6zY8cOc/DgQfPmm2+aL37xi6akpMT85Cc/yR7jt+tojPXzzLj++uvNnDlz8j6nn67lTTfdZOLxuGlpacn5t3fixInsMV7eJwMbPowx5r777jOTJ082ZWVlZvbs2eaVV17Jfu+SSy4xS5cuzTn+iSeeMB/96EdNWVmZmT59uvnv//7vnO/39PSY22+/3UyYMMGUl5ebyy67zBw4cMCNUxmQlXOsqakxkvp9rF271hhjzIkTJ8wVV1xhPvzhD5uRI0eampoa8/nPf97T/wFkWDnPlStXZo+dMGGC+au/+iuzd+/enOcL+rU0xpj//d//NZLMj3/8437P5cdrmZly2fcjc15Lly41l1xySb+f+cQnPmHKysrMueeea7773e/2e97Bfm9us3qOl1xyyaDHG5OeXjxp0iRTVlZmPvKRj5hrrrnGHDp0yN0T68XqOW7cuNGcd955ZtSoUWb8+PGmrq7OvPDCC/2e10/X0Zji/r1+8MEHZvTo0ebhhx/O+5x+upb5zk1Szt+Yl/fJ2J8bCQAA4IpA1nwAAIDgInwAAABXET4AAICrCB8AAMBVhA8AAOAqwgcAAHAV4QMAALiK8AEAAFxF+AAAAK4ifAAAAFcRPgAAgKsIHwAAwFX/D+ttYFUgJ1geAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(X,Y,'b.')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "58d01fe1-d148-45e1-a2d0-d38431e94369",
   "metadata": {},
   "outputs": [],
   "source": [
    "X_b = np.c_[np.ones((100,1)),X] "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "9f7dd6e0-691e-4d5d-83a4-cfe76d6dc7d3",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1.00000000e+00, 1.95939368e+00],\n",
       "       [1.00000000e+00, 9.17704661e-01],\n",
       "       [1.00000000e+00, 9.39645039e-01],\n",
       "       [1.00000000e+00, 1.09944887e+00],\n",
       "       [1.00000000e+00, 1.05947710e+00],\n",
       "       [1.00000000e+00, 1.12618849e+00],\n",
       "       [1.00000000e+00, 4.48177908e-01],\n",
       "       [1.00000000e+00, 1.37859576e+00],\n",
       "       [1.00000000e+00, 1.44731594e+00],\n",
       "       [1.00000000e+00, 7.46386653e-01],\n",
       "       [1.00000000e+00, 1.29875159e-01],\n",
       "       [1.00000000e+00, 1.60249829e+00],\n",
       "       [1.00000000e+00, 8.06996013e-01],\n",
       "       [1.00000000e+00, 1.79828362e+00],\n",
       "       [1.00000000e+00, 8.16282335e-01],\n",
       "       [1.00000000e+00, 4.06676979e-01],\n",
       "       [1.00000000e+00, 3.89688585e-01],\n",
       "       [1.00000000e+00, 1.53555121e+00],\n",
       "       [1.00000000e+00, 1.56690270e+00],\n",
       "       [1.00000000e+00, 1.17281797e+00],\n",
       "       [1.00000000e+00, 4.58601963e-01],\n",
       "       [1.00000000e+00, 1.97017454e+00],\n",
       "       [1.00000000e+00, 3.09527754e-01],\n",
       "       [1.00000000e+00, 1.55883476e+00],\n",
       "       [1.00000000e+00, 5.19775646e-01],\n",
       "       [1.00000000e+00, 1.67586954e+00],\n",
       "       [1.00000000e+00, 4.51850038e-01],\n",
       "       [1.00000000e+00, 3.64163846e-01],\n",
       "       [1.00000000e+00, 9.35664802e-01],\n",
       "       [1.00000000e+00, 1.77948248e+00],\n",
       "       [1.00000000e+00, 1.20884316e+00],\n",
       "       [1.00000000e+00, 4.19836288e-01],\n",
       "       [1.00000000e+00, 4.43887472e-02],\n",
       "       [1.00000000e+00, 1.81246936e+00],\n",
       "       [1.00000000e+00, 1.00602092e+00],\n",
       "       [1.00000000e+00, 1.73634775e+00],\n",
       "       [1.00000000e+00, 6.54486123e-01],\n",
       "       [1.00000000e+00, 1.70042480e+00],\n",
       "       [1.00000000e+00, 1.00636296e+00],\n",
       "       [1.00000000e+00, 8.65682637e-01],\n",
       "       [1.00000000e+00, 4.98331172e-03],\n",
       "       [1.00000000e+00, 1.71442930e+00],\n",
       "       [1.00000000e+00, 5.24335919e-01],\n",
       "       [1.00000000e+00, 1.81507193e-01],\n",
       "       [1.00000000e+00, 8.41959926e-01],\n",
       "       [1.00000000e+00, 1.74458863e+00],\n",
       "       [1.00000000e+00, 1.68497551e+00],\n",
       "       [1.00000000e+00, 9.15556780e-01],\n",
       "       [1.00000000e+00, 7.68724437e-01],\n",
       "       [1.00000000e+00, 1.43617255e+00],\n",
       "       [1.00000000e+00, 4.67313276e-01],\n",
       "       [1.00000000e+00, 9.27802247e-01],\n",
       "       [1.00000000e+00, 1.92853674e+00],\n",
       "       [1.00000000e+00, 4.43780327e-01],\n",
       "       [1.00000000e+00, 1.92743742e+00],\n",
       "       [1.00000000e+00, 2.40801310e-01],\n",
       "       [1.00000000e+00, 1.07717392e+00],\n",
       "       [1.00000000e+00, 1.26398917e+00],\n",
       "       [1.00000000e+00, 2.71566868e-01],\n",
       "       [1.00000000e+00, 1.41015672e+00],\n",
       "       [1.00000000e+00, 7.96082921e-02],\n",
       "       [1.00000000e+00, 4.79699240e-01],\n",
       "       [1.00000000e+00, 2.25849100e-01],\n",
       "       [1.00000000e+00, 6.28863454e-01],\n",
       "       [1.00000000e+00, 1.30885250e+00],\n",
       "       [1.00000000e+00, 7.32752833e-01],\n",
       "       [1.00000000e+00, 1.26824495e+00],\n",
       "       [1.00000000e+00, 5.94617523e-01],\n",
       "       [1.00000000e+00, 1.42534449e+00],\n",
       "       [1.00000000e+00, 9.03731449e-01],\n",
       "       [1.00000000e+00, 4.03814606e-01],\n",
       "       [1.00000000e+00, 4.61716340e-01],\n",
       "       [1.00000000e+00, 1.00705690e+00],\n",
       "       [1.00000000e+00, 5.15901729e-01],\n",
       "       [1.00000000e+00, 1.96494274e+00],\n",
       "       [1.00000000e+00, 7.39279237e-01],\n",
       "       [1.00000000e+00, 1.62639030e+00],\n",
       "       [1.00000000e+00, 7.34098563e-01],\n",
       "       [1.00000000e+00, 9.86095277e-01],\n",
       "       [1.00000000e+00, 1.82279919e-03],\n",
       "       [1.00000000e+00, 1.64181891e+00],\n",
       "       [1.00000000e+00, 1.46920210e+00],\n",
       "       [1.00000000e+00, 1.84044446e+00],\n",
       "       [1.00000000e+00, 2.38358370e-01],\n",
       "       [1.00000000e+00, 1.68166234e-01],\n",
       "       [1.00000000e+00, 1.89667989e+00],\n",
       "       [1.00000000e+00, 3.12094070e-01],\n",
       "       [1.00000000e+00, 8.03367992e-01],\n",
       "       [1.00000000e+00, 8.58833619e-01],\n",
       "       [1.00000000e+00, 1.72246142e+00],\n",
       "       [1.00000000e+00, 1.97010035e+00],\n",
       "       [1.00000000e+00, 1.29883556e+00],\n",
       "       [1.00000000e+00, 1.29140775e+00],\n",
       "       [1.00000000e+00, 9.03488065e-01],\n",
       "       [1.00000000e+00, 2.30210403e-01],\n",
       "       [1.00000000e+00, 9.48654837e-01],\n",
       "       [1.00000000e+00, 7.09134216e-01],\n",
       "       [1.00000000e+00, 1.51132086e+00],\n",
       "       [1.00000000e+00, 5.29969114e-01],\n",
       "       [1.00000000e+00, 1.19096830e+00]])"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_b"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "c2a0bb8f-8715-41cc-bc60-ea09b98b3310",
   "metadata": {},
   "outputs": [],
   "source": [
    "θ = np.linalg.inv(X_b.T.dot(X_b)).dot(X_b.T).dot(Y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "4b59ccd2-56ce-4886-ba97-736c6f35a138",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[5.14129567],\n",
       "       [3.97076456]])"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "θ"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "6647f370-e174-4f98-ba1a-3e0dc4439d54",
   "metadata": {},
   "outputs": [],
   "source": [
    "X_new = np.array([[0],[2]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "19b9425f-cd12-40fd-b191-94ab60e2cc35",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0],\n",
       "       [2]])"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_new"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "a130e3ba-4559-4084-9b29-f7bd434fa9f1",
   "metadata": {},
   "outputs": [],
   "source": [
    "X_new_b = np.c_[np.ones((2,1)),X_new] "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "96e72e7a-52f1-4f2c-aa85-6aa2da8bdf18",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1., 0.],\n",
       "       [1., 2.]])"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_new_b"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "522aeb1f-d14b-456f-acab-352bb1b81cd3",
   "metadata": {},
   "outputs": [],
   "source": [
    "Y_predict = X_new_b.dot(θ)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "1544b593-25b1-45e4-9ca4-2232aec0b68c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 5.14129567],\n",
       "       [13.08282479]])"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Y_predict"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "83598117-f23a-4134-b140-8ea9f4d32eeb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(X,Y,'b.')\n",
    "plt.plot(X_new,Y_predict,'r-')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "7ce7a0ec-23d4-4576-98b8-bb8416095a24",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
